<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        // 两个数的最大公约数    12   28   
        //   12 % 2 == 0   28 % 2 == 0    2  
        //   12 % 3 == 0   28 % 3 != 0    3 不是他们的公约数
        //   12 % 4 == 0   28 % 4 == 0    4 
        //   12 % 5 != 0  
        //   12 % 6 == 0   28 % 6 != 0    6 不是他们公约数
        //        7 
        //        8 
        //        9 
        //        10 
        //        11
        //        12   



        var n1 = 12 ;
        var n2 = 28 ;


        // 分析：最终是为了得到一个结果 --- 是一个数字
        var res = 1 ;

        for(var i = 1 ; i <= 12 ; i++) {
            if(n1 % i === 0 && n2 % i === 0) {
                // 能同时被n1和n2整除  说明这个i 是他们的公约数
                // console.log(i) ;
                res = i ;
            }
        }


        console.log(res) ;


        // i = 1
        //    res = 1 
        // i = 2 
        //     res = 2 
        // i = 3 

        // i = 4 
        //    res = 4 
        // i = 5 

        // i = 6 

        // i = 7 

        // i = 8

        // ... 

        // i = 12  不会被整除






        // 12  28 

        // 12 % 12   28 % 12  
        // 12 % 11 
        //      10 
        // ....


        // 倒着除   ---- 注意：只要找到能被整除的数  就一定要  break   


        var n1 = 4 ;
        var n2 = 8 ; 
        for(var i = Math.min(n1 , n2) ; i >= 1; i--) {
            if(n1 % i === 0 && n2 % i === 0) {
                console.log(i) ;
                // 这个break 必须写
                break ;
            }
        }



        // 4 8  
        // 4 % 1   8 % 1   1 
        // 4 % 2   8 % 2   2
        // 4 % 3   8 % 3
        // 4 % 4   8 % 4   4      

        // for 循环 没有机会提前结束 



        // 倒着除的时候   大概率会提前结束   

























    </script>
    
</body>
</html>